/*
* Page.java
* Created on  2014-5-25 下午3:54
* 版本       修改时间          作者      修改内容
* V1.0.1    2014-5-25       gaoxinyu    初始版本
*
*/
package com.genghis.ptas.util;

import java.util.HashMap;
import java.util.Map;

/**
 * 类的描述信息
 *
 * @author fengxuanzhen
 * @version 1.0.1
 */
public class Page {

    public static Map getPageMap(int page, int pageCount, int pageAllCount) {
        Map map = new HashMap();
        page = pageAllCount == 0 ? 0 : page;
        //当前页
        map.put("page", page);
        //每页条数
        map.put("count", pageCount);
        //总共多少条
        map.put("sumCount", pageAllCount);
        //总共多少页
        double doubleSumPage = (pageAllCount + 0.0) / pageCount;
        int sumPage = pageAllCount % pageCount == 0 ? pageAllCount / pageCount : (int) doubleSumPage + 1;
        int beginPage = 0;
        int endPage = 0;
        //如果总的页数小于5 显示全部
        if (sumPage < 5) {
            beginPage = 1;
            endPage = sumPage;
            //如果选择页到结束页小于5 显示包括之前5页 或小于5页
        } else if (sumPage - page < 4) {
            int count = 4 - (sumPage - page);
            beginPage = page - count < 1 ? 1 : page - count;
            endPage = sumPage;
        } else {
            beginPage = page;
            endPage = page + 4;
        }
        map.put("sumPage", sumPage);
        map.put("beginPage", beginPage);
        map.put("endPage", endPage);
        map.put("nextStyle", "");
        map.put("beforeStyle", "");
        //上一页下一页样式
        if (page == 1 || page == 0) map.put("beforeStyle", "class=\"disabled\"");
        if (page == sumPage || page == 0) map.put("nextStyle", "class=\"disabled\"");
        int beginCount = page == 0 ? 0 : (page - 1) * pageCount;
        int endCount = beginCount + pageCount > pageAllCount ? pageAllCount : beginCount + pageCount;
        map.put("beginCount", beginCount);
        map.put("endCount", endCount);
        map.put("endCountJs", endCount > 0 ? endCount - 1 : endCount);
        return map;
    }
}
